home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HamCall (October 1991)
/
HamCall (Whitehall Publishing)(1991).bin
/
bcast
/
miscbcst
/
tvfrmt.bas
< prev
next >
Wrap
BASIC Source File
|
1990-10-14
|
3KB
|
68 lines
TVFRMT.BAS
1 REM TV script formatter for M100
2 REM Wally Hubbard 70346,1716
3 REM SP$ sets left column width
4 REM F1$ sets printer to wide chars
5 REM F2$ sets printer to normal chars
6 REM LW sets right column width
7 REM output (lpt:) is set in line 50
10 CLEAR 4096,MAXRAM:MAXFILES=2:SN=60:DIM S$(SN)
12 SP$="\"+SPACE$(35)+"\":S$=" ":LW=20:ES$=CHR$(13)+" "+CHR$(9)
15 E$=CHR$(27):F1$=E$+CHR$(23)+E$+CHR$(14):F2$=E$+CHR$(19)+E$+CHR$(15)
17 CLS:PRINT "File Formatter"
20 LINE INPUT "File: ";IN$
30 IF NOT INSTR(1,IN$,".DO") THEN IN$=LEFT$(IN$,6)+".DO"
39 ON ERROR GOTO 42
40 OPEN IN$ FOR INPUT AS 1
41 GOTO 50
42 IF ERR=52 THEN PRINT "File not found":FILES:RESUME 20
43 IF ERR=55 THEN FILES:RESUME 20
50 ON ERROR GOTO 0:OPEN "lpt:" FOR OUTPUT AS 2
55 PRINT "Wait..."
60 GOSUB 4000:SI=1:SO=0
70 IF EOF(1) THEN Y=0:GOSUB 2025:S$=" -30-":GOSUB 2025:GOSUB 3000
71 IF EOF(1) THEN CLOSE:END:ELSE IF B$="" THEN A$=INPUT$(1,1) ELSE A$=B$:B$=""
72 IF A$=CHR$(13) OR A$=CHR$(9) THEN A$=" "
75 IF A$<" " GOTO 70
77 IF A$=" " THEN FLAG=1:GOTO 70
80 IF A$="<" THEN GOSUB 1000:GOTO 70
81 IF A$="[" AND S$<>"" THEN Y=0:GOSUB 2025:GOSUB 1000:GOTO 70
82 IF A$="[" AND S$="" THEN GOSUB 1000:GOTO 70
83 IF FLAG THEN FLAG=0:S$=S$+" "
84 IF A$>="a" AND A$<+"z" THEN A$=CHR$(ASC(A$)-32)
90 S$=S$+A$:IF LEN(S$)>LW THEN GOSUB 2000:GOTO 70
100 IF A$="."THEN B$=INPUT$(1,1):IF INSTR(1,ES$,B$)THEN Y=0:GOSUB 2025:S$=" "
110 GOTO 70
1000 REM read left column info
1010 IF EOF(1) THEN RETURN ELSE C$=INPUT$(1,1)
1012 IF C$=">" THEN SI=SI+1:IF SI>=SN THEN SI=0:RETURN ELSE RETURN
1015 IF C$="]" THEN SI=SI+1:IF SI>=SN THEN SI=0
1017 IF C$="]" THEN GOSUB 3000:RETURN
1020 IF C$=";" THEN SI=SI+1:IF SI>=SN THEN SI=0
1021 IF C$=CHR$(13) THEN SI=SI+1:C$=INPUT$(1,1):C$="":IF SI>=SN THEN SI=0
1025 IF C$="*" THEN S$(SI)=S$(SI)+STRING$(79-LEN(S$(SI)),C$):SI=SI+1
1027 IF C$="*" THEN IF SI>=SN THEN SI=0:GOTO 1010 ELSE 1010
1030 S$(SI)=S$(SI)+C$:GOTO 1010
2000 Y=0:FOR X=LEN(S$) TO 2 STEP -1:IF MID$(S$,X,1)=" " THEN Y=X:X=2
2010 NEXT
2020 IF Y>0 THEN PRINT #2, USING SP$;S$(SO);
2022 IF Y>0 THEN PRINT #2, F1$;LEFT$(S$,Y-1);F2$:S$=MID$(S$,Y+1)
2025 IF Y=0 THEN PRINT #2, USING SP$;S$(SO);
2027 IF Y=0 THEN PRINT #2, F1$;LEFT$(S$,30);F2$:S$=""
2030 S$(SO)="":IF SO<>SI THEN SO=SO+1:IF SO>=SN THEN SO=0
2035 PRINT #2, USING SP$;S$(SO)
2036 S$(SO)="":IF SO<>SI THEN SO=SO+1:IF SO>=SN THEN SO=0
2040 RETURN
3000 IF SO=SI THEN RETURN
3010 PRINT #2, S$(SO):SO=SO+1:IF SO>=SN THEN SO=0
3020 GOTO 3000
4000 IF EOF(1) THEN 5000
4010 A$=INPUT$(1,1):IF A$="<" OR A$="[" THEN GOSUB 4050:GOTO 4000
4020 IF A$>" " THEN N=N+1
4030 GOTO 4000
4050 IF EOF(1) THEN RETURN ELSE C$=INPUT$(1,1)
4060 IF C$=">" OR C$="]" THEN RETURN ELSE GOTO 4050
5000 CLOSE 1:OPEN IN$ FOR INPUT AS 1
5010 S$(0)="Words: "+STR$(INT(N/5+.5))+" Copy Time: "+STR$(INT(N/15+.5))
5020 RETURN